The present invention relates to a mechanism for controlling an application program which operates on one or more computers and, more particularly, to an information processing method, apparatus, and system capable of operating a plurality of applications by linking them on one or a plurality of computers. The present invention also relates to a mechanism capable of linking a plurality of applications by controlling activation, termination, and message transmission of the application programs.
Recently, a GUI (Graphical User Interface) using a window system is becoming very popular on personal computers and workstations. Accordingly, applications provided to the users are now required to provide more complicated and various functions in more sophisticated forms than the applications in program environments before the advent of GUIs.
In order to meet this demand, it has been extensively attempted to meet various circumstances by allowing a combination of a plurality of relatively simple applications by providing an inter-application cooperating mechanism, rather than by repeating extension of a single application. As the basic mechanism for this inter-application cooperative action, the use of a data exchange mechanism using interprocess communication is common.
As representative examples of the data exchange mechanism, Socket.TM. provided by Unix Operating Systems.TM. and Port.TM. provided by Mach Operating Systems.TM. are used as the basic mechanisms. Also, some systems add appropriate programs to these basic mechanisms and thereby provide interfaces more readily usable by application developers. Representative examples of these systems are Sun RPC.TM. of Sun Operating Systems.TM. and ToolTalk.TM. of Solaris Operating System.TM..
In parallel with the above phenomenon which may be said to be an improvement in the user environment, a groupware system which supports a cooperative work among the users is attracting attention.
This groupware system is computer software aiming at supporting a group work done by a plurality of users and recently lays particularly much weight on support for group works done via networks. Common groupware systems provide a television conference function using video images or a joint writing editor and thereby allow group works or conferences with remote places via networks. One possible approach to realize this groupware is to extend the user environment described above to an environment which is used in the form which involves a plurality of computers. For this purpose it is necessary to extend the basic mechanism for cooperative actions between applications so that the mechanism meets cooperative actions required in the groupware.
The following limitations must be eliminated or relaxed in order to extend the inter-application communication mechanism to the inter-user cooperative work environment. That is, a user environment which is the work environment of each individual user is constituted and characterized by applications operating in that environment. Accordingly, the inter-user cooperative work environment is realized by cooperation among user environments and hence cooperation among applications constituting these user environments. In order for a certain application to effectuate a cooperative action with applications in other user environments, this application must have information indicating what applications constitute other user environments and what role each individual application has.
Assume, for example, that an application a which operates in a user environment A communicates with an application b which operates in a user environment B. In this case the application a needs to have information indicating that the other party of communication is the application b.
In a groupware environment, however, it is possible that the application b happens to be the other party of communication only at this point of time and so the application b operates in a user environment B' at another point of time. It is also possible that at still another point of time the application a must communicate with an application c which operates in a user environment C.
A general approach by which the other party of communication is managed is to give a unique name to a process which operates in a user or group environment. Unfortunately, application developers have responsibility of avoiding duplication of names, so it is becoming difficult to meet the environment in which the constitution of applications or users frequently changes dynamically as described above.
To meet the demand for providing the inter-application cooperating mechanism, the following two methods are proposed and being examined:
(1) A method in which one application program (called a master application) which functions as the key to an application linkage exists and this master application controls other applications (called slave applications). PA1 (2) A method in which all applications equally communicate with each other and take part in processing. PA1 Master system . . . Mechanisms of linking and integrating applications are centralized on the master. Although this facilitates formation of a slave, the program of the master is complicated accordingly. Also, the loads tend to be centralized on the master. PA1 Communication system . . . Each application has mechanisms of linkage and integration. This complicates each individual application, but it is readily possible to distribute the loads. Also, a trouble of one application does not have a large effect on the whole system.
In this specification the method (1) will be referred to as a master system and the method (2) will be referred to as a communication system.
The characteristic features of the two respective methods are as follows:
Generally, in the master system complicated application control can be centralized on the master, whereas in the communication system high-level processing is difficult to achieve unless a protocol between applications is defined. For this reason, the master system is used in many instances except when specific programs perform only simple data exchange.
It is unfortunate that to add a new application to applications operating in association with each other in the master system or to introduce a new linkage protocol to the method, the program (master program) of the master application needs to be modified, and even a total modification is required in some cases.
Even if a modification of the master is a small-scale one, in the environment in which the constitution of related applications changes dynamically, a modification of the master program cannot meet each individual change. This demand is becoming urgent more and more with the spread of a work environment involving a plurality of computers which results from the progress of LANs or WANS. A demand has therefore arisen for realization of a flexible application linkage control mechanism capable of meeting a complicated application linkage in which the constitution of applications can dynamically change.